home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-03-07 | 987 b | 58 lines | [TEXT/EDIT] |
- \ FUNCTION PopUpMenuSelect
- \ (menu: MenuHandle; top, left, popUpItem: INTEGER): LONGINT;
- \ INLINE $A80B;
-
- \ popup menu interface from Forth
- \ example J. Langowski Jan 1988
-
- code popup ( hMenu top left item# | menuID item -- )
- exg d4,a7
- clr.l -(a7)
- move.l 12(a6),-(a7) \ handle
- move.w 10(a6),-(a7) \ top
- move.w 6(a6),-(a7) \ left
- move.w 2(a6),-(a7) \ item
- adda.l #16,A6
- _popupmenuselect
- clr.l d0
- clr.l d1
- move.w (a7)+,d0
- move.w (a7)+,d1
- exg d4,a7
- move.l d0,-(a6)
- move.l d1,-(a6)
- rts
- end-code
-
- 108 user taskmenubar
- 152 user content-hook
-
- NEW.MENU myMenu
- " TestMenu" myMenu TITLE
- -1 150 myMenu BOUNDS \ invisible menu
- " Item 1;Item 2;Item 3" myMenu ITEMS
-
- taskmenubar @ mymenu add
- call drawmenubar
-
- : beep
- ?dup if
- 0 do 5 call sysbeep loop
- then
- ;
-
- : content-handler { | pt -- }
- @mouse -> pt
- ^ pt call localtoglobal
- mymenu @
- pt unpack
- 1
- popup
- beep drop
- run-content
- ;
-
- : dopop ['] content-handler content-hook ! ;
- : nopop ['] run-content content-hook ! ;
-
-